bitkeeper revision 1.1236.1.105 (423fdeaeuXmbQUj74cWh1nItpSKUjw)
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Tue, 22 Mar 2005 09:00:30 +0000 (09:00 +0000)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Tue, 22 Mar 2005 09:00:30 +0000 (09:00 +0000)
Improved cross-compilation support.
Signed-off-by: Keir Fraser <keir@xensource.com>
.rootkeys
Config.mk [new file with mode: 0644]
Makefile
tools/Rules.mk
tools/libxc/Makefile
tools/libxutil/Makefile
tools/misc/Makefile
tools/xentrace/Makefile
xen/Rules.mk
xen/arch/x86/Rules.mk
xen/tools/figlet/Makefile

index a9c385aaa366a090a9c4ccdf9d89f008636b9f05..3e3af9bdf9763214f4d41795b26c79380bd134e8 100644 (file)
--- a/.rootkeys
+++ b/.rootkeys
@@ -3,6 +3,7 @@
 3ddb6b0buTaC5zg1_a8FoAR9FWi_mw BitKeeper/etc/ignore
 3ddb79c9_hgSp-gsQm8HqWM_9W3B_A BitKeeper/etc/logging_ok
 4177dbbfqsi01p2zgZa0geUOgScONw COPYING
+423fdd91sxkCMaKFcDsEdhsZer54vA Config.mk
 3eb788d6Kleck_Cut0ouGneviGzliQ Makefile
 3f5ef5a24IaQasQE2tyMxrfxskMmvw README
 41880852AtdVfSsfKGtrLdajX1vEXQ buildconfigs/Rules.mk
diff --git a/Config.mk b/Config.mk
new file mode 100644 (file)
index 0000000..368d383
--- /dev/null
+++ b/Config.mk
@@ -0,0 +1,33 @@
+# -*- mode: Makefile; -*-
+# Currently supported architectures: x86_32, x86_64
+XEN_COMPILE_ARCH    ?= $(shell uname -m | sed -e s/i.86/x86_32/)
+XEN_TARGET_ARCH     ?= $(XEN_COMPILE_ARCH)
+
+#
+# Tool configuration Makefile fragment
+#
+HOSTCC     = gcc
+HOSTCFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer 
+
+AS         = $(CROSS_COMPILE)as
+LD         = $(CROSS_COMPILE)ld
+CC         = $(CROSS_COMPILE)gcc
+CPP        = $(CROSS_COMPILE)gcc -E
+AR         = $(CROSS_COMPILE)ar
+NM         = $(CROSS_COMPILE)nm
+STRIP      = $(CROSS_COMPILE)strip
+OBJCOPY    = $(CROSS_COMPILE)objcopy
+OBJDUMP    = $(CROSS_COMPILE)objdump
+
+
+ifneq ($(EXTRA_PREFIX),)
+EXTRA_INCLUDES += $(EXTRA_PREFIX)/include
+EXTRA_LIB += $(EXTRA_PREFIX)/lib
+endif
+
+LDFLAGS += $(foreach i, $(EXTRA_LIB), -L$(i)) 
+CFLAGS += $(foreach i, $(EXTRA_INCLUDES), -I$(i))
+
+CFLAGS += -g
+
+
index 2de7e5ba30e080114e923dacb455a689389b88fe..403321912c1b996a53e619b8678951a90a02c395 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -27,6 +27,7 @@ SUBARCH := $(subst x86_32,i386,$(XEN_TARGET_ARCH))
 export XEN_TARGET_ARCH SUBARCH
 endif
 
+include Config.mk
 include buildconfigs/Rules.mk
 
 .PHONY:        all dist install xen tools kernels docs world clean mkpatches mrproper
index 4fb4551aebc1d4e5dc29686160483199c9d9b31b..ea6d5baa2b8562e02ccaf61f74792dea7e4dd29e 100644 (file)
@@ -1,12 +1,11 @@
 #  -*- mode: Makefile; -*-
 
+include $(XEN_ROOT)/Config.mk
+
 XEN_XC             = $(XEN_ROOT)/tools/python/xen/lowlevel/xc
 XEN_LIBXC          = $(XEN_ROOT)/tools/libxc
 XEN_LIBXUTIL       = $(XEN_ROOT)/tools/libxutil
 
-XEN_COMPILE_ARCH  ?= $(shell uname -m | sed -e s/i.86/x86_32/)
-XEN_TARGET_ARCH   ?= $(XEN_COMPILE_ARCH)
-
 ifeq ($(XEN_TARGET_ARCH),x86_32)
 CFLAGS  += -m32 -march=i686
 LDFLAGS += -m elf_i386
index 3739d5b1732971493de6c1f544409f9ba68ca2f4..cc72924724863d4054f10f490bdde11897b76b01 100644 (file)
@@ -105,6 +105,6 @@ libxc.so.$(MAJOR): libxc.so.$(MAJOR).$(MINOR)
        ln -sf $< $@
 
 libxc.so.$(MAJOR).$(MINOR): $(PIC_OBJS)
-       $(CC) $(CFLAGS) -Wl,-soname -Wl,libxc.so.$(MAJOR) -shared -o $@ $^ -L../libxutil -lxutil -lz
+       $(CC) $(CFLAGS) $(LDFLAGS) -Wl,-soname -Wl,libxc.so.$(MAJOR) -shared -o $@ $^ -L../libxutil -lxutil -lz
 
 -include $(DEPS)
index 2989f45960e3f7253e9e95abaa4e0d1a3a558074..90a83223cf740371f111ff0d658ed06d9b2fcfb7 100644 (file)
@@ -7,8 +7,6 @@ INSTALL_DIR     = $(INSTALL) -d -m0755
 
 include $(XEN_ROOT)/tools/Rules.mk
 
-CC = gcc
-
 LIB_SRCS :=
 LIB_SRCS += allocate.c
 LIB_SRCS += enum.c
index 7bfe0fad6b6474e7e94c71ab49307c5cf5ce31f3..b815072184a8527bfd7bf714d53e90b065107f47 100644 (file)
@@ -5,7 +5,6 @@ INSTALL_DIR     = $(INSTALL) -d -m0755
 XEN_ROOT=../..
 include $(XEN_ROOT)/tools/Rules.mk
 
-CC        = gcc
 CFLAGS   += -Wall -Werror -O3 
 
 INCLUDES += -I $(XEN_XC)
index 3ee097ee318ac881dcdc788c87b18666706520c1..5498c458e1a3fac861c665478338eb7939e7a3c0 100644 (file)
@@ -6,7 +6,6 @@ INSTALL_DATA    = $(INSTALL) -m0644
 XEN_ROOT=../..
 include $(XEN_ROOT)/tools/Rules.mk
 
-CC       = gcc
 CFLAGS  += -Wall -Werror -O3
 
 CFLAGS  += -I $(XEN_XC)
index e604985ee813e15f1214706d4651bd106ee66d9a..f9650fc74459151dbfd7060532cfc083f4dfcb1f 100644 (file)
@@ -7,9 +7,7 @@ optimize    ?= y
 domu_debug  ?= n
 crash_debug ?= n
 
-# Currently supported architectures: x86_32, x86_64
-XEN_COMPILE_ARCH    ?= $(shell uname -m | sed -e s/i.86/x86_32/)
-XEN_TARGET_ARCH     ?= $(XEN_COMPILE_ARCH)
+include $(BASEDIR)/../Config.mk
 
 # Set ARCH/SUBARCH appropriately.
 override COMPILE_SUBARCH := $(XEN_COMPILE_ARCH)
@@ -39,10 +37,8 @@ ALL_OBJS += $(BASEDIR)/drivers/acpi/driver.o
 ALL_OBJS += $(BASEDIR)/drivers/pci/driver.o
 ALL_OBJS += $(BASEDIR)/arch/$(TARGET_ARCH)/arch.o
 
-HOSTCC     = gcc
-HOSTCFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer 
 
-test-gcc-flag = $(shell gcc -v --help 2>&1 | grep -q " $(1) " && echo $(1))
+test-gcc-flag = $(shell $(CC) -v --help 2>&1 | grep -q " $(1) " && echo $(1))
 
 include $(BASEDIR)/arch/$(TARGET_ARCH)/Rules.mk
 
index 1eda23b4166ad1d7b10ac259fd0a966273e3f08a..370bf3d0a8d14417ec6a347cb629fa1bea0b92a5 100644 (file)
@@ -1,10 +1,7 @@
 ########################################
 # x86-specific definitions
 
-CC := gcc
-LD := ld
-
-CFLAGS  := -nostdinc -fno-builtin -fno-common -fno-strict-aliasing
+CFLAGS  += -nostdinc -fno-builtin -fno-common -fno-strict-aliasing
 CFLAGS  += -iwithprefix include -Wall -Werror -Wno-format -pipe
 CFLAGS  += -I$(BASEDIR)/include -Wno-pointer-arith -Wredundant-decls
 
@@ -24,13 +21,13 @@ CFLAGS  += $(call test-gcc-flag,-fno-stack-protector-all)
 
 ifeq ($(TARGET_SUBARCH),x86_32)
 CFLAGS  += -m32 -march=i686
-LDFLAGS := -m elf_i386 
+LDFLAGS += -m elf_i386 
 endif
 
 ifeq ($(TARGET_SUBARCH),x86_64)
 CFLAGS  += -m64 -mno-red-zone -fpic -fno-reorder-blocks
 CFLAGS  += -fno-asynchronous-unwind-tables
-LDFLAGS := -m elf_x86_64
+LDFLAGS += -m elf_x86_64
 endif
 
 # Test for at least GCC v3.2.x.
index 9ed8fdff9cd6661649c218f13240edd884a43635..ed4d3fa574b4924298484572678eb227aead410b 100644 (file)
@@ -1,8 +1,8 @@
 
-CC := gcc
+include ../../Config.mk
 
 figlet: figlet.c
-       $(CC) -o $@ $<
+       $(HOSTCC) -o $@ $<
 
 clean:
        rm -f *.o figlet